package com.renjun.smweb.service.RegisterService;


import com.alibaba.fastjson.JSONObject;
import com.itextpdf.text.DocumentException;
import com.renjun.smweb.exceptions.BaseException;
import com.renjun.smweb.exceptions.DictIsNotFoundException;
import com.renjun.smweb.exceptions.FileTypeNotFoundException;

import java.io.IOException;
import java.sql.SQLException;
import java.text.ParseException;
import java.util.Map;

/**
 * Created by RenJun on 2017/2/21.
 * 报名登记接口
 */
public interface RegisterService {

    /**
     * 查询登记列表
     * 向立军 2017年2月21日12:39:54
     * @param params
     * @return
     * @throws SQLException
     */
    JSONObject queryRegisterList(Map<String,Object> params)throws SQLException;

    /**
     * 新增登记学生
     * 向立军 2017年2月21日12:39:46
     * @param params
     * @return
     * @throws SQLException
     */
    JSONObject addRegister(Map<String,Object> params) throws SQLException, BaseException, ParseException;

    /**
     * 批量导入登记学生
     * @param params
     * @return
     * @throws SQLException
     */
    JSONObject batchImportRegister(Map<String,Object> params) throws SQLException, IOException, FileTypeNotFoundException, BaseException, ParseException;

    /**
     * 修改登记学生
     * 向立军
     * @param params
     * @return
     * @throws SQLException
     */
    JSONObject modifyRegister(Map<String,Object> params) throws SQLException, BaseException, ParseException;

    /**
     * 删除登记记录
     * @param params
     * @return
     * @throws SQLException
     */
    JSONObject removeRegister(Map<String,Object> params) throws SQLException, BaseException, ParseException;

    /**
     * 批量删除登记记录
     * @param params
     * @return
     * @throws SQLException
     */
    JSONObject batchImportRemoveRegister(Map<String,Object> params) throws SQLException, IOException, FileTypeNotFoundException, BaseException, ParseException;

    /**
     * 导出登记记录
     * @param params
     * @return
     * @throws SQLException
     */
    JSONObject exportRegister(Map<String,Object> params) throws SQLException, FileTypeNotFoundException, IOException, DictIsNotFoundException;

    /**
     * 查看新生详细信息
     * @param params
     * @return
     * @throws SQLException
     */
    JSONObject registerDetail(Map<String,Object> params)throws SQLException;

    /**
     * 生成新生登记表 pdf
     * @param params
     * @return
     */
    JSONObject generateRegister(Map<String, Object> params) throws SQLException, BaseException, IOException, DocumentException;

    /**
     * 批量生成入学信息登记表
     * @author lrs
     * @param params params:{}
     * @return json
     */
    JSONObject batchGeneraterRegistrationForm(Map<String,Object> params) throws SQLException, BaseException, IOException, DocumentException;

    /**
     * 虹口查询全区登记学生
     * @param params
     * @return
     * @throws SQLException
     */
    JSONObject queryRegisterDistrictCode(Map<String, Object> params)throws SQLException;

    /**
     * 虹口一级园，示范园，进行查询学生拉取
     * @param params
     * @return
     * @throws SQLException
     */
    JSONObject addRegisterSchool(Map<String, Object> params) throws SQLException, BaseException, ParseException;

    /**
     * 取消登记
     * @param params
     * @return
     * @throws SQLException
     */
    JSONObject cancelRegisterSchool(Map<String, Object> params)throws SQLException;

    /**
     * 学校管理员
     * @param params
     * @return
     * @throws SQLException
     */
    JSONObject getCheckTime(Map<String, Object> params)throws SQLException;

    /**
     * 校验
     * @param params
     * @return
     * @throws SQLException
     */
    boolean checkRegisterStudentSfzjh(Map<String,Object> params) throws SQLException;

    /**
     * 虹口新生登记
     * @param params
     * @return
     * @throws SQLException
     */
    JSONObject addRegisterHk(Map<String, Object> params) throws SQLException, BaseException, ParseException;
}
